A network system comprises the hardware and supporting software necessary to direct information between computers. The network itself may be a shared local area network (LAN), wide area network (WAN), metropolitan area network (MAN), the Internet, or any other type of network or communication system suitable for transferring information between computer systems. Network hardware may comprise switches, used to connect computers on a common network, and routers, used to make interconnections between networks, where the collection of computers, switches, routers, and other devices used in a network environment, can be referred to as network nodes.
A network, or a group of networks, using common administration, and with a common routing policy, is known as an autonomous system. Facilitating the transfer of information on a network between, or within, an autonomous system are communication protocols. The internet protocol suite (TCP/IP) is a set of such communication protocols used for internet communication.
TCP/IP is divided into four layers; the border gateway protocol (BGP) is an application layer protocol, and the protocol commonly used between internet service providers (ISPs). BGP can be described as a protocol that advertises reachability information between autonomous systems to determine routes to networks.
The operation of network hardware, such as switches and routers, can be conceptually divided between a data-plane and a control-plane, where the data-plane comprises the physical hardware necessary to forward data packets through the piece of network hardware. The control-plane, in contrast, comprises the software that analyzes data packets arriving at, for example, a switch port, and decides what actions should be taken in response to the data packet's arrival. The control-plane maintains a routing table, listing all network addresses reachable from the given switch, and instructs the data-plane as to how to forward the packet.
A centrally-controlled network, or software-defined network, as recited by OpenFlow (openflow.org), is a methodology that allows for centralized control of a large network of hardware. The control-plane is removed from the individual switches and routers, and replaced by an OpenFlow agent that allows for remote control from a centralized control server, or centralized controller. An OpenFlow switch, for example, primarily consists of three parts, a flow table, which informs the switch as to how to process incoming packets, a secure channel that connects to the global control-plane, and the OpenFlow protocol to enable the centralized control server to communicate with the switch.
BGP can connect multiple autonomous systems running any kind of internal routing protocol. It is agnostic to the internal workings of an autonomous system, and only requires that at least one of the routers in the autonomous system runs the BGP protocol, wherein this router runs a protocol processor which is, in this implementation, a BGP speaker, and wherein BGP normally has one BGP speaker representing one switching node or router. A centrally-controlled network aims to allow a single, centralized controller to control a large number of switching nodes. Conventional BGP methods present a problem for centralized control, however, since a centralized controller has to run a BGP speaker for each centrally-controlled switching node or router, which may be computationally expensive and impractical for a large number of switching nodes or routers controlled by a single centralized controller.
As such, there is a need for a more efficient method for accommodating centralized control in a BGP network.